import Config from '@/config'
import http from '@/libs/request'

const baseUrl = process.env.NODE_ENV === 'development' ? Config.baseUrl.dev : Config.baseUrl.prod
console.log('baseUrl: ', baseUrl)

const install = (app) => { //Vue, vm
	//如果插件是一个函数，它会被作为 install 方法。install 方法调用时，会将 app 作为参数传入
	http.setConfig({
		baseUrl
	})
	// 请求拦截，配置Token等参数
	http.interceptor.request = (config) => {
		const loginRes = uni.getStorageSync('loginRes')
		const token = loginRes ? loginRes.token : ''
		if (token) {
			config.header['authorization'] = token
		}
		console.log(config)
		return config;
	}
	// 响应拦截，判断状态码是否通过
	http.interceptor.response = (res) => {
		if (!res) return
		if (res.code && res.code !== 100 && res.code !== 401) {
			uni.showToast({
				title: res.message,
				icon: 'none'
			})
		}

		if (res.code && res.code === 401) {
			uni.showToast({
				title: res.message || '令牌失效，请重新登录',
				icon: 'none'
			});

			uni.removeStorageSync('loginRes');

			setTimeout(() => {
				const url = '/pages/login/index';
				uni.reLaunch({
					url
				})
			}, 2000)
		}
		return res;
	}
}

export default install